home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / SOURCE.ZIP / SUBR.ASM < prev    next >
Assembly Source File  |  1986-05-29  |  1KB  |  43 lines

  1. SUBR    PROC    FAR
  2.     SPACE
  3. ; -------------------------------------------------------------------
  4. ;    ADD BCD NUMBERS
  5. ;   THIS ROUTINE ADDS TWO BCD NUMBERS OF EQUAL LENGTH
  6. ;   ASSUMPTIONS:
  7. ;   CX  CONTAINS THE LENGTH OF THE FIELDS BEING ADDED
  8. ;   SI  POINTS TO THE LEFTMOST BYTE OF THE BCD DATA
  9. ;   DI  POINTS TO THE SECOND OPPERAND WHICH IS OVERLAID BY RESULT
  10. ;   AX  DESTROYED BY THIS ROUTINE
  11. ;
  12. BCDADD    LABEL    FAR
  13.     CLC                ;CLEAR CARY FLAG
  14. BCD1    LABEL    NEAR
  15.     MOV    AL,[SI]        ;GET A DATA BYTE
  16.     ADC    AL,[DI]        ;ADD A BYTE
  17.     DAA                ;ADJUST RESULT
  18.     MOV    [DI],AL        ;STORE ANSWER
  19.     INC    SI            ;BUMP POINTER
  20.     INC    DI            ;BUMP POINTER
  21.     DEC    CX            ;DECREMENT AND TEST
  22.     JNZ    BCD1            ;LOOP TILL DONE
  23.     RET                ;BACK TO CALLER
  24.     SPACE    2
  25. ;    ADD ASCII NUMBERS
  26. ;   LINKAGE IS SAME AS ABOVE
  27. ;
  28. ASCADD    LABEL    FAR
  29.     CLC                ;CLEAR CARRY FLAG
  30. ASC1    LABEL    NEAR
  31.     MOV    AL,[SI]        ;GET A BYTE
  32.     ADC    AL,[DI]        ;ADD DATA
  33.     AAA                ;ADJUST RESULT
  34.     MOV    [DI],AL        ;STORE ANSWER
  35.     INC    SI            ;BUMP POINTER
  36.     INC    DI            ;BUMP POINTER
  37.     DEC    CX            ;LOOP CONTROL
  38.     JNZ    ASC1            ;LOOP FOR MORE
  39.     RET
  40. ;
  41. ; -------------------------------------------------------------
  42. SUBR    ENDP
  43.